package com.vviton.zyhj.admin.controller;

import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import com.vviton.zyhj.admin.content.CommonConstants;
import com.vviton.zyhj.admin.content.SessionYwry;
import com.vviton.zyhj.admin.service.CommonService;
import com.vviton.zyhj.admin.view.ViewRootMenu;
import com.vviton.zyhj.common.base.BaseController;
import com.vviton.zyhj.common.entity.TYyxtCode;
import com.vviton.zyhj.common.entity.TYyxtCpglLmb;
import com.vviton.zyhj.common.utils.LocaleUtil;
import com.vviton.zyhj.common.utils.ResultJson;
import com.vviton.zyhj.common.view.ParamUpload;
import com.vviton.zyhj.common.view.ViewCpglLmb;
import com.wdcloud.framework.core.log.annotation.MonitorLog;

/**
 * ClassName: CommonController <br/>
 * Function: 公共接口调用 Controller. <br/>
 * Date: 2015年9月10日 <br/>
 *
 * @author wanrj
 * @version 1.0
 * @since JDK 1.7
 */
@Controller
@RequestMapping("common")
public class CommonController extends BaseController {

	/** 公共接口 */
	@Autowired
	private CommonService commonService;

	/**
	 * getLmxxList,获取礼品类目. <br/>
	 * Author: huangqq <br/>
	 * Create Date: 2016年11月16日 <br/>
	 * ===============================================================<br/>
	 * Modifier: huangqq <br/>
	 * Modify Date: 2016年11月16日 <br/>
	 * Modify Description: <br/>
	 * ===============================================================<br/>
	 *
	 * @param lmb
	 *            类目信息
	 * @return 类目集合
	 * @since JDK 1.7
	 */
	@RequestMapping("getLmxxList")
	@ResponseBody
	public List<ViewCpglLmb> getLmxxList(@RequestBody TYyxtCpglLmb lmb) {
		return commonService.getLmxxList(lmb);
	}

	/**
	 *
	 * getCodeListByCodeClass,(根据codeClass取码表数据). <br/>
	 * Author: nifang <br/>
	 * Create Date: 2016年11月16日 <br/>
	 * ===============================================================<br/>
	 * Modifier: nifang <br/>
	 * Modify Date: 2016年11月16日 <br/>
	 * Modify Description: <br/>
	 * ===============================================================<br/>
	 *
	 * @param codeClass
	 *            代码
	 * @return 码表数据
	 * @since JDK 1.7
	 */
	@RequestMapping("getCodeListByCodeClass")
	@ResponseBody
	@MonitorLog(text = "根据codeClass取码表数据", containRequest = true)
	public List<TYyxtCode> getCodeListByCodeClass(@RequestParam String codeClass) {
		return commonService.getCodeListByCodeClass(codeClass);
	}

	/**
	 *
	 * getCyfxxToCodeList,(获取转换成码表结构的承运方信息列表). <br/>
	 * Author: nifang <br/>
	 * Create Date: 2016年11月3日 <br/>
	 * ===============================================================<br/>
	 * Modifier: nifang <br/>
	 * Modify Date: 2016年11月3日 <br/>
	 * Modify Description: <br/>
	 * ===============================================================<br/>
	 *
	 * @param shfs
	 *            送货方式
	 * @return 转换成码表结构的承运方信息列表
	 * @since JDK 1.7
	 */
	@RequestMapping("getCyfxxToCodeList")
	@ResponseBody
	@MonitorLog(text = "获取转换成码表结构的承运方信息列表", containRequest = true)
	public List<TYyxtCode> getCyfxxToCodeList(@RequestParam String shfs) {
		List<TYyxtCode> codeList = commonService.getCyfxxToCodeList(shfs);
		return codeList;
	}

	/**
	 * checkLogoUrl,校验logo图片地址有效性. <br/>
	 * Author: yaojie <br/>
	 * Create Date: 2016年8月19日 <br/>
	 * ===============================================================<br/>
	 * Modifier: yaojie <br/>
	 * Modify Date: 2016年8月19日 <br/>
	 * Modify Description: <br/>
	 * ===============================================================<br/>
	 *
	 * @param logoUrl
	 *            logo地址
	 * @return 地址是否有效
	 * @since JDK 1.7
	 */
	@RequestMapping("checkLogoUrl")
	@ResponseBody
	@MonitorLog(text = "校验logo图片地址有效性", containRequest = true)
	public ResultJson checkLogoUrl(@Param("logoUrl") String logoUrl) {
		return commonService.checkLogoUrl(logoUrl);
	}

	/**
	 * uploadLogo,根据课堂id上传图片logo. <br/>
	 * Author: wanrj <br/>
	 * Create Date: 2016年1月29日 <br/>
	 * ===============================================================<br/>
	 * Modifier: huangqq <br/>
	 * Modify Date: 2016年1月29日 <br/>
	 * Modify Description: <br/>
	 * ===============================================================<br/>
	 *
	 * @param paramUpload
	 *            上传参数包含 (ktid 课堂id,path 图片路径,x x坐标,y y坐标, w 宽度 )
	 * @return ResultJson
	 * @since JDK 1.7
	 */
	@RequestMapping("uploadLogo")
	@ResponseBody
	@MonitorLog(text = "根据课堂id上传图片logo", containRequest = true)
	public ResultJson uploadLogo(@RequestBody ParamUpload paramUpload) {
		return commonService.uploadLogo(paramUpload);
	}

	/**
	 * getZhlxList,获取账号类型列表. <br/>
	 * Author: yaojie <br/>
	 * Create Date: 2016年4月29日 <br/>
	 * ===============================================================<br/>
	 * Modifier: yaojie <br/>
	 * Modify Date: 2016年4月29日 <br/>
	 * Modify Description: <br/>
	 * ===============================================================<br/>
	 *
	 * @return 账号类型集合
	 * @since JDK 1.7
	 */
	@RequestMapping("getZhlxList")
	@ResponseBody
	@MonitorLog(text = "获取账号类型列表", containRequest = true)
	public List<TYyxtCode> getZhlxList() {
		String lang = LocaleUtil.getLocale().getLanguage();
		return commonService.getZhlxList(lang);
	}

	/**
	 * getDqdmList,获取地区代码信息. <br/>
	 * Author: huangqq <br/>
	 * Create Date: 2016年4月20日 <br/>
	 * ===============================================================<br/>
	 * Modifier: huangqq <br/>
	 * Modify Date: 2016年4月20日 <br/>
	 * Modify Description: <br/>
	 * ===============================================================<br/>
	 *
	 * @return 地区代码信息
	 * @since JDK 1.7
	 */
	@RequestMapping("getDqdmList")
	@ResponseBody
	@MonitorLog(text = "获取地区代码", containRequest = true)
	public List<TYyxtCode> getDqdmList() {
		String lang = LocaleUtil.getLocale().getLanguage();
		return commonService.getDqdmList(lang);
	}

	/**
	 * getXwList,获取行为信息. <br/>
	 * Author: huangqq <br/>
	 * Create Date: 2016年4月20日 <br/>
	 * ===============================================================<br/>
	 * Modifier: huangqq <br/>
	 * Modify Date: 2016年4月20日 <br/>
	 * Modify Description: <br/>
	 * ===============================================================<br/>
	 *
	 * @return 行为信息
	 * @since JDK 1.7
	 */
	@RequestMapping("getXwList")
	@ResponseBody
	@MonitorLog(text = "获取行为", containRequest = true)
	public List<TYyxtCode> getXwList() {
		String lang = LocaleUtil.getLocale().getLanguage();
		return commonService.getXwList(lang);
	}
	
	/**
    *
    * getMenu,(获取登录用户菜单). <br/>
    * Author: zhijian.zhang <br/>
    * Create Date: 2017年3月22日 <br/>
    * ===============================================================<br/>
    * Modifier: zhijian.zhang <br/>
    * Modify Date: 2017年3月22日 <br/>
    * Modify Description: <br/>
    * ===============================================================<br/>
    *
    * @param request 请求对象
    * @return ViewRootMenu
    * @since JDK 1.7
    */
   @RequestMapping("getMenu")
   @ResponseBody
   @MonitorLog(text = "获取登录用户菜单", containRequest = true)
   public ViewRootMenu getMenu(HttpServletRequest request) {
	   SessionYwry ywry = CommonConstants.getSessionYwry(request);
       String userid = ywry.getUserid();
       return commonService.getMenu(userid);
   }
}
